import { get, post, getPage } from '../utils/http';
import type { BaseResponse, PageResponse } from '../types/response';

/**
 * 课程类型接口
 */
export interface Course {
  name: string;
  // 其他课程相关字段
}

/**
 * 用户信息接口
 */
export interface UserInfo {
  id: string;
  username: string;
  // 其他用户相关字段
}

/**
 * API服务类
 */
export class ApiService {
  /**
   * 获取课程列表
   * @returns 课程列表
   */
  static async getCourseList(): Promise<string[]> {
    const res = await get<string[]>('/common/listTags');
    return res.data;
  }

  /**
   * 获取用户信息
   * @param userId 用户ID
   * @returns 用户信息
   */
  static async getUserInfo(userId: string): Promise<UserInfo> {
    const res = await get<UserInfo>(`/api/user/${userId}`);
    return res.data;
  }

  /**
   * 分页获取课程列表
   * @param pageNumber 页码
   * @param pageSize 每页条数
   * @returns 分页课程列表
   */
  static async getCoursePage(pageNumber: number = 1, pageSize: number = 10): Promise<PageResponse<Course>> {
    return await getPage<Course>('/api/courses/page', {
      pageNumber,
      pageSize
    });
  }

  /**
   * 创建课程
   * @param course 课程信息
   * @returns 创建结果
   */
  static async createCourse(course: Course): Promise<BaseResponse<boolean>> {
    return await post<boolean>('/api/courses', course);
  }
} 